// 1。实例化
// 2。请求拦截器响应拦截器
// 3. 封装一个单独的函数（一般会做)

import axios from 'axios'

// 实例化
const instance = axios.create({
  baseURL: 'http://pcapi-xiaotuxian-front-devyest.itheima.net/',
  timeout: 5000
})

// 请求拦截器
// 携带token
instance.interceptors.request.use(config => {
  return config
}, e => Promise.reject(e))

// 响应拦截器
// 1.token失效跳回登录页
// 2．简化数据获取 response.data当后端不是以200-300当成接口成功的标识而是以一个自定义字段
// 需要前端手动抛出错误
instance.interceptors.response.use(
  (response) => {
    return response
  },
  (error) => {
    return Promise.reject(error)
  }
)

/**
 * @param {String} - url  请求地址
 * @param {String} - method  请求类型
 * @param {Object} - submitData  对象类型，提交数据
 */
export default function createAPI (url, method, reqData) {
  return instance({
    url,
    method,
    [method.toLowerCase() === 'get' ? 'params' : 'data']: reqData
  })
}
